Search applications, such as Internet search engines and mobile navigation systems, receive user input that includes search terms for desired information on locales or destinations and the like. The search applications return search results that are responsive to the search terms and that should contain the desired information. The more desirable search applications assist users in finding the information they seek more accurately and more quickly. Providing a response more quickly is especially important in the mobile environment, where the user input interface is often relatively small, cumbersome, and slow, and where users are often engaged in multiple tasks that compete for attention.
One technique for assisting the user input process is to provide suggested input completion. For example, many mobile navigation systems offer suggested city name and street name completions as a user types the input letters. The system suggestions are based on the received letters, which comprise a text string that can be compared against a database of valid city names and street names. The most likely valid names are offered to the user as suggested completions for the input string. The user is free to accept a suggested completion, or to continue with providing text input letter-by-letter until the user completes the input string. As the user types additional letters, the system may continue to offer name completion suggestions until the user submits an input string.
Query completion is also known for Internet search engines in the mobile context. As a user types letters comprising search terms into an input display box, the mobile search engine application may offer suggested terms (letters and/or words) that would be valid completions to the search query. For example, if a mobile user begins typing into a search engine input box and completes the text string “resta . . . ”, the search engine may select the word “restaurant” from its database and offer the word to the user as a suggested completion for the query text. If the user selects the suggested completion, the search engine will use the accepted completion text in the search. If the user wants to keep typing the input, the user can do so. In either case, the search engine will operate on the search input phrase submitted by the user.
The database relied upon for providing suggested search terms is typically a list of several hundred or perhaps one thousand popular terms. The list of popular terms comprises a query lexicon or dictionary that the search engine can use to compare against already-received letters and terms in a query input to identify the most likely search query completion. The query dictionary is typically downloaded from the search engine server and stored at the user's mobile device, rather than kept only at the search engine server. Downloads can occur periodically according to a schedule or can occur whenever a change to the dictionary is available, or both. Such local storage of the completion database provides faster response time and reduced bandwidth requirements as compared with server-based dictionary storage.
Unfortunately, users may often provide search terms that are not found among the popular terms in standard dictionaries, and therefore the search engine system cannot find meaningful completion suggestions from the database. That is, the completion suggestions are more likely to be rejected by the user. As a result, the user must manually complete the search input string. Search terms that are not found in the local search dictionary represent lost opportunities for assisting the user with more quickly completing the query and receiving useful responses. In addition, when the acceptance rate of completion suggestions is reduced because no meaningful completions are offered, some users may come to suspect that a carrier or search provider is skewing the search terms offered or is attempting to influence the submitted searches for their own purposes, rather than to assist the user. Such suspicions lead to user dissatisfaction, much in the way that non-targeted advertising can have a negative impact on consumers.
Although more valid completion suggestions can be obtained with a larger search dictionary that would have more terms available for suggestions, the increased dictionary size would tax the local data storage capacities of most mobile devices. Thus, increasing the local dictionary size sufficiently to include most of the terms a user might input would be impractical. The search engine server has significant storage capacity for large dictionaries and could be the repository for a larger mobile completion suggestion database, but forcing mobile devices to obtain completion suggestion from the server would significantly increase the response time, defeating the purpose of completion suggestion, and would consume too much system bandwidth. Thus, server-based completion suggestion would be an unsatisfactory user experience and would be inefficient.
It should be apparent that more efficient schemes for providing search engine query input for mobile devices are desired. The present invention satisfies this need.